Arquitectura de agentes

Introducción

Podemos decir que un agente es un programa software que cumple con los siguientes elementos clave:

Es decir, para describir el comportamiento percibido desde fuera del agente, este requiere percibir el entorno a través de sensores, lo que le permite establecer acciones concretas a través de los actuadores

 

Agente

Percepción - Actuación - Meta - Ambiente/Entorno

 

Podemos hablar de:

 

Características del ambiente

Accesibilidad

 

Determinismo

 

Episódico o no episódico

 

Estático o dinámico

 

Discreto o continuo

Esto dependerá del ciclo de actualización de la percepción del ambiente.

 

 

Clasificación de los agentes

Agente reactivo simple o Agente reflejo

Este tipo de agentes funcionan en ambientes totalmente accesibles.

Toman decisiones en base a reglas de acción / reacción que le permiten realizar medidas sobre el entorno y desencadenar alguna acción establecida con el programa del agente.

 

Esta función implementa la función de agente reactivo simple de una aspiradora. Fuente: adaptado de Russell, S. y Norvig, P. (2020).

 

Agente_reactivo_simple

Diagrama esquemático de un agente reactivo simple.

 

Agente reactivo basado en modelos o Agente bien informado

Este tipo de agentes funcionan en ambientes parcialmente accesibles, lo que implica que ante una misma percepción pueden ocurrir acciones diferentes.

La forma de manejar una accesibilidad parcial es que el agente guarde un registro que le permita diferenciar estados aparentemente iguales. Es decir, tiene que inferir y realizar un modelo.

Ejemplo: Entro en una habitación a oscuras con las manos hacia adelante y voy caminando. En un momento determinado me choco con algo en las piernas, así que me detengo y cambio el rumbo, pero guardo en mi memoria que en ese lugar hay un objeto, así la próxima vez que vuelva, aunque yo no vea nada delante, recordaré que había algo en ese lugar y tratare de esquivarlo.

Las acción dependerá de la percepción y del estado interno anterior (modelo).

PERCEPCIÓN + ESTADO INTERNO ANTERIOR → ACCIÓN

Además, estos agentes tienen la función actualizar, donde se actualizará el estado interno a partir del estado actual y las nuevas percepciones.

 

Un ejemplo real sería un coche autónomo, donde su sistema de percepción es una cámara. Si encuentra un obstáculo que impide la visión, el coche de delate frena o cambia de carril...

  • En condiciones normales actuará como un agente reactivo simple.

  • En condiciones de lluvia, inferirá el estado con percepción parcial y tomara una decisión en basé al modelo.

 

 

Agente_reactivo_basado_en_modelos

Diagrama esquemático de un agente reactivo basado en modelos.

 

Agente basado en objetivos o Agente basado en metas

Los agentes basados en objetivos, además de la información de estado, tienen información de meta (planificación) que describe situaciones deseables.

PERCEPCIÓN + ESTADO + META → ACCIÓN

Tienen en cuenta los acontecimientos futuros y actúan razonando sobre qué acciones lograrán el objetivo.

Un agente basado en objetivos aumenta la capacidad del agente basado en modelo al disponer de la información del objetivo.

 

Agentes_basados_en_objetivos

Diagrama esquemático de un agente basado en objetivos.

 

Agente basado en utilidad

Los agentes basados en utilidad son agentes basados en metas pero que tiene una planificación inteligente y de calidad, que les permiten alcanzar sus objetivos de una manera óptima.

PLANIFICACIÓN + INTELIGÉNTE → ÓPTIMA

Son útiles cuando hay múltiples alternativas de alcanzar un objetivo y deben elegir cual es la mejor acción a realizar.

La calidad consiste en alcanzar la meta optimizando otros parámetros valorables como: coste, esfuerzo, tiempo... Para ello, debemos realizar una planificación inteligente que me diga que acción es mejor tomar para alcanzar mi objetivo de manera óptima.

Existe la posibilidad de tener varias metas:

La función de utilidad es esencialmente una internalización de la medida de rendimiento, donde decidirá las acciones a realizar para maximizar su objetivo.

 

Agentes_basados_en_utilidad

Diagrama esquemático de un agente basado en utilidad.

 

Sistemas multi-agente

Un SMA (Sistema multi-agente) es un sistema compuesto por múltiples agentes inteligentes que interactúan entre ellos. Los sistemas multi-agente pueden ser utilizados para resolver problemas que son difíciles o imposibles de resolver por un agente individual.

 

Arquitecturas de los agentes

Arquitectura reactivas

Son arquitecturas que están compuestas por agentes reactivos y tienen un comportamiento acción/reacción.

Al contener agentes reactivos, obtenemos un conjunto de tareas jerarquizadas a partir de los datos recibidos del entorno.

Esta arquitectura contiene unas reglas predefinidas que proporcionan rapidez de reacción.

Son utilizadas en entornos que exigen reacciones rápidas como la robótica móvil y sistemas cambiantes.

 

Deliberativas

Son arquitecturas que suelen estar compuestas por agentes basados en metas y agentes basados en utilidad ya que tienen en común un sistema de planificación.

Modelo BDI (Belief, Desire, Intention):

 

Híbridas

Son arquitecturas multi-agente basadas en capas, combinando arquitecturas reactivas y deliberativas.

Suelen dividirse en dos enfoques:

 

Comunicación entre agentes

 

Colaboración y organización entre agentes

Puede existir colaboración entre agentes, donde para una misma meta, varios agentes tengan que colaborar.

Para que exista una colaboración entre agentes, debe existir:

Para organizarse, los agentes deben definir sus interrelaciones: delegando tareas, sincronizándose, negociando...

 

Coordinación y negociación entre agentes

En un sistema multi-agente colaborativo pueden aparecer conflictos (las acciones de algunos agentes pueden hacer que la función de evaluación de otros baje y viceversa), por eso tiene que haber un sistema de negociación.

El sistema de negociación es clave para que la coordinación funcione, siendo este el responsable de tomar una decisión sobre dos funciones de evaluación confrontadas.

El sistema de negociación se basa en un sistema de apuestas, donde cada agente propone una serie de resultados si ejecuta su acción y se toma una decisión.